#pragma once

#include <muduo/net/TcpServer.h>
#include <muduo/net/EventLoop.h>
#include <functional>
#include <iostream>

class EchoServer
{
public:
    EchoServer(muduo::net::EventLoop *loop, const muduo::net::InetAddress &listenAddr);
    void start(); // call _server.start()
private:
    void onConnection(const muduo::net::TcpConnectionPtr &conn);
    void onMessage(const muduo::net::TcpConnectionPtr &conn, muduo::net::Buffer *buf, muduo::Timestamp time);

private:
    muduo::net::EventLoop *_loop;
    muduo::net::TcpServer _server;
};
